<?php

class CMd5cmn{
	
	private static $key;
	
	public static $showNumber = 4;
	
	private static function sort($a, $b){ 
		$a1 = md5($a.self::$key);
		$b1 = md5($b.self::$key);
		return strcmp($a1,$b1);
	}
	
	private static function objectSort($a, $b){ 
		$a1 = md5($a['itemid'].self::$key);
		$b1 = md5($b['itemid'].self::$key);
		return strcmp($a1,$b1);
	}
	
	public static function fakeShuffleArray($itemArray,$md5Id){
		$result = array();
		self::$key = $md5Id;
		usort($itemArray,array('CMd5cmn','objectSort'));
		for($i=0;$i<self::$showNumber;$i++){
			$result[$i] = $itemArray[$i];
		}
		return $result;
	}
	
	public static function combinAction($itemIdArray,$id){
		$result = array();
		self::$key = $id;
		usort($itemIdArray,array('CMd5cmn','sort'));
		for($i=0;$i<self::$showNumber;$i++){
			$result[$i] = $itemIdArray[$i];
		}
		return $result;
	}
	
	public static function combinActionMap($itemMap,$id){
		$itemIdArray = array();
		$i = 0;
		foreach($itemMap as $key=>$value){
			$itemIdArray[$i]=$key;
			$i++;
		}
		$result = array();
		self::$key = $id;
		usort($itemIdArray,array('CMd5cmn','sort'));
		for($i=0;$i<self::$showNumber;$i++){
			$result[$i] = $itemMap[$itemIdArray[$i]];
		}
		return $result;
	}
	
	public static function shuffleActionMap($itemMap){
		$itemIdArray = array();
		$i = 0;
		foreach($itemMap as $key=>$value){
			$itemIdArray[$i]=$key;
			$i++;
		}
		shuffle($itemIdArray);
		for($i=0;$i<self::$showNumber;$i++){
			$result[$i] = $itemMap[$itemIdArray[$i]];
		}
		return $result;
	}
	
}